<?php

/**
 * 店铺接口(包括汽车专题)
 * @author yanshuai 2011-10-21
 *
 */
class StoreApp extends ApiApp
{

    private $_store_mod = null;

    function __construct()
    {
        $this->StoreApp();
    }

    public function StoreApp()
    {
        parent::__construct();
        $this->_store_mod = & m('store');
    }

    /**
     * @author yanshuai 2011-10-21
     * 获得汽车专题的店铺及相关信息信息
     *
     */
    public function apiGetTopicMsg()
    {
        $store_id = $this->_get_store_id();
        $_auto_topics_config_model = & m('auto_topics_config');
        //下面对店铺id进行判断
        if (empty($store_id)) {
            $this->show_warning('have_no_use_store_id');
        }
        if (is_array($store_id) && count($store_id) > 1) {
            echo 'must_use_only_one_store_id';
            $this->show_warning('must_use_only_one_store_id');
            exit;
        }
        $store_id = implode(',', $store_id);
        if (!$_auto_topics_config_model->checkStoreId($store_id)) {
            $this->show_warning('store_id_not_can_use');
            ApiError::showError('goods_id_required', 1);
            exit;
        }
        //得到店铺的基本信息
        $sql_get_store_msg = sprintf(
            'select a.*,b.doyoo_companyid,b.doyoo_jsconfigid,b.doyoo_tel from %s a left join %s b on a.store_id=b.store_id where a.store_id=%s',
            $_auto_topics_config_model->table,
            $this->_store_mod->table,
            $store_id
        );
        $topic_store_msg = $_auto_topics_config_model->getRow($sql_get_store_msg);

        //得到店铺下面商品的基本信息
        $_auto_goods_list_model = & m('auto_goods_list');
        $_auto_car_type_model = & m('auto_car_type');
        $_goods_model = & m('goods');
        $sql_get_store_goods_msg = sprintf(
            'select a.*,b.price,b.original_price,c.* from %s a left join %s b on a.goods_id=b.goods_id left join %s c on a.car_type_id=c.id where a.store_id=%s',
            $_auto_goods_list_model->table,
            $_goods_model->table,
            $_auto_car_type_model->table,
            $store_id
        );
        $topic_store_goods_msg = $_auto_goods_list_model->getAll($sql_get_store_goods_msg);
        //组合数据
        $topic_store_goods_msg_temp = array();
        foreach ($topic_store_goods_msg as $v) {
            $topic_store_goods_msg_temp[$v['goods_id']] = $v;
        }
        $topic_store_goods_msg = $topic_store_goods_msg_temp;

        //组合数据
        if (!empty($topic_store_goods_msg)) {
            $topic_store_msg['goods_msg'] = $topic_store_goods_msg;
        } else {
            $topic_store_msg['goods_msg'] = array();
        }
        $this->echo_result($topic_store_msg);
        exit;
    }

    public function apiCheckTopicId()
    {
        //检测store_id是否可用
        $store_id = $_REQUEST['id'];
        $_auto_topics_config_model = & m('auto_topics_config');
        if ($_auto_topics_config_model->checkStoreId($store_id)) {
            echo 1;
        } else {
            echo 0;
        }
        exit;
    }

    /**
     * 获取店铺投放量
     * add by yanshuai    2011-11-09
     * quota_month 查询月份 格式：201112
     * id 店铺id
     */
    public function apiGetStoreQuotaByStoreId()
    {
        $_store_quota_model = & m('store_quota');
        //查询特定月份
        $quota_month = !empty($_REQUEST['quota_month']) ? $_REQUEST['quota_month'] : local_date('Ym', gmtime());

        $store_id = $this->_get_store_id();
        $store_id = implode(',', $store_id);
        $sql = sprintf(
            'select * from %s a where a.store_id=%s and quota_month=%s',
            $_store_quota_model->table,
            $store_id,
            $quota_month
        );
        $rs = $_store_quota_model->getAll($sql);
        $this->echo_result($rs);
        exit;
    }

    /**
     * 获取总投放量
     * add by yanshuai    2011-11-09
     * @param quota_month 查询月份 格式：201112
     * @return array
     */
    public function apiGetNowMonthAllQuota()
    {
        $_quota_model = & m('quota');
        //查询特定月份
        $quota_month = !empty($_REQUEST['quota_month']) ? $_REQUEST['quota_month'] : local_date('Ym', gmtime());

        $sql = sprintf('select * from %s a where quota_month=%s', $_quota_model->table, $quota_month);
        $rs = $_quota_model->getAll($sql);
        $this->echo_result($rs);
        exit;
    }

    /**
     * 获得汽车店铺总购买量
     * add by yanshuai 2011-11-15
     * @param quota_month  查询月份 格式：201112(默认当月)
     * @return array 总购买量
     */
    public function apiGetNowMonthAllBuyQuota()
    {
        $_store_quota_model = & m('store_quota');
        $quota_month = !empty($_REQUEST['quota_month']) ? $_REQUEST['quota_month'] : local_date('Ym', gmtime());
        $sql = sprintf(
            'select sum(buy_quota) all_buy_quota from %s where quota_month=%s',
            $_store_quota_model->table,
            $quota_month
        );
        $rs = $_store_quota_model->getRow($sql);
        $this->echo_result($rs);
        exit;
    }

    /**
     * 获得当月所有店铺总商城铺贴量
     * add by yanshuai 2011-11-30
     * @param quota_month  查询月份 格式：201112(默认当月)
     * @return array 总购买量
     */
    public function apiGetNowMonthAllStoreQuota()
    {
        $_store_quota_model = & m('store_quota');
        $quota_month = !empty($_REQUEST['quota_month']) ? $_REQUEST['quota_month'] : local_date('Ym', gmtime());
        $sql = sprintf(
            'select sum(emall_quota) all_emall_quota from %s where quota_month=%s',
            $_store_quota_model->table,
            $quota_month
        );
        $rs = $_store_quota_model->getRow($sql);
        $this->echo_result($rs);
        exit;
    }

    /**
     * 获得汽车店铺总购买量
     * @return array 总购买量
     */
    public function apiGetAllBuyQuota()
    {
        $_store_quota_model = & m('store_quota');
        $sql = sprintf('select sum(buy_quota) all_buy_quota from %s', $_store_quota_model->table);
        $rs = $_store_quota_model->getRow($sql);
        $this->echo_result($rs);
        exit;
    }

    /**
     * 获得auto下面的全部的汽车专题活动id(activities_id)
     *     活动下面的汽车专题活动id是写在配置项里的
     * @return array (一维数组)
     */
    public function apiGetAutoActivitiesId()
    {
        $_auto_topics_config_model = & m('auto_topics_config');
        $sql = sprintf('select a.act_id from %s a', $_auto_topics_config_model->table);
        $rs = $_auto_topics_config_model->getAll($sql);
        $rs2 = array();
        foreach ($rs as $v) {
            $rs2[] = $v['act_id'];
        }
        $this->echo_result($rs2);
        exit;
    }

    /**
     * 获得店铺id
     * @author yanshuai
     * @return Array
     */
    private function _get_store_id()
    {
        $store_ids_str = isset($_REQUEST['store_id']) ? $_REQUEST['store_id'] : $_REQUEST['id'];
        $store_ids = array();

        $store_ids_arr = explode(',', $store_ids_str);
        foreach ((array)$store_ids_arr as $tmp_id) {
            if (!empty($tmp_id)) {
                $store_ids[] = $tmp_id;
            }
        }
        return $store_ids;
    }
}

?>